import 'package:get/get.dart';
import 'package:flutter/foundation.dart';
import '../../../common/api/index.dart';
import '../../../common/models/index.dart';
import '../../../common/mixins/user_profile_mixin.dart';
import '../../../common/routers/names.dart';

class CaigouAssessmentController extends GetxController with UserProfileMixin {
  CaigouAssessmentController();

  // 🔥 状态管理
  var isLoading = false.obs;
  var projectList = <ProjectModel>[].obs;
  var errorMessage = ''.obs;

  // 🔥 获取当前登录专家的ID（从UserProfileMixin）
  int get currentExpertId {
    final expertIdStr = expertId; // 从UserProfileMixin获取String类型的expertId
    final parsedId = int.tryParse(expertIdStr);
    
    if (parsedId == null || parsedId <= 0) {
      debugPrint('⚠️ 专家ID无效: $expertIdStr，使用默认值1');
      return 1; // 如果解析失败，使用默认值
    }
    
    debugPrint('✅ 使用专家ID: $parsedId');
    return parsedId;
  }

  /// 初始化数据
  _initData() {
    loadProjectList();
    update(["caigou_assessment"]);
  }

  /// 加载项目列表（评标人项目 flag=2）
  Future<void> loadProjectList() async {
    try {
      debugPrint('🔄 采购评估页面 - 开始加载项目列表');
      
      // 检查登录状态
      if (!isLoggedIn) {
        debugPrint('❌ 用户未登录，无法加载项目列表');
        errorMessage.value = '请先登录';
        return;
      }
      
      isLoading.value = true;
      errorMessage.value = '';
      
      final expertIdToUse = currentExpertId;
      debugPrint('🔄 使用专家ID: $expertIdToUse 获取评标项目列表');
      
      // 调用API获取评标人项目列表
      final projects = await ProjectApi.getProjectList(
        expertId: expertIdToUse,
        flag: 2, // 2-作为评标人的项目列表
      );
      
      projectList.value = projects;
      
      debugPrint('✅ 采购评估页面 - 专家 $expertIdToUse 加载了 ${projects.length} 个项目');
      
    } catch (e) {
      debugPrint('❌ 采购评估页面 - 加载项目列表失败: $e');
      errorMessage.value = e.toString();
      projectList.value = [];
    } finally {
      isLoading.value = false;
      update(["caigou_assessment"]);
    }
  }

  /// 刷新项目列表
  Future<void> refreshProjectList() async {
    await loadProjectList();
  }

  /// 点击项目项
  void onProjectTap(ProjectModel project) {
    debugPrint('🔍 点击项目: ${project.projectName}');
    if (project.id != null) {
      Get.toNamed(RouteNames.assessmentCaigouDetail, arguments: {
        'projectId': project.id,
      });
    } else {
      debugPrint('⚠️ 项目ID为空，无法跳转到详情页');
    }
  }

  @override
  void onReady() {
    super.onReady();
    _initData();
  }
}
